//Copyright (c) Microsoft Corporation.  All rights reserved.

using System;
using System.Collections.Generic;
using System.Text;

namespace Eas.WebCrawler.Test.Model {
    internal class TestAction : Eas.WebCrawler.Model.Actions.ProcessingAction {

        internal TestAction(Eas.WebCrawler.Model.Actions.ActionId actionId) {
            _ActionId = actionId;
            _WorkerState = ActionHelper.TranslatActionIDToWorkerState(actionId);
        }

        /// <summary>The Current WorkerState</summary>
        /// <remarks>Backing field for the WorkerState property.</remarks>
        /// <seealso cref="WorkerState"/>
        private Eas.WebCrawler.Interfaces.WorkerState _WorkerState;

        /// <summary>ActionId</summary>
        /// <remarks>Backing field for the ActionId property.</remarks>
        /// <seealso cref="ActionId"/>
        private Eas.WebCrawler.Model.Actions.ActionId _ActionId;

        /// <summary>ActionId</summary>
        public Eas.WebCrawler.Model.Actions.ActionId ActionId {
            get { return _ActionId; }
            set { _ActionId = value; }
        }

        /// <summary>The Current WorkerState</summary>
        public Eas.WebCrawler.Interfaces.WorkerState WorkerState {
            get { return _WorkerState; }
            set { _WorkerState = value; }
        }

        public void PerformCompletingAction(Eas.WebCrawler.Model.Core.WorkerContext context, Eas.WebCrawler.Model.Core.BaseProcessingState state, IAsyncResult result) {
            throw new Exception("The method or operation is not implemented.");
        }

        public IAsyncResult BeginAction(Eas.WebCrawler.Model.Core.WorkerContext context, Eas.WebCrawler.Model.Core.BaseProcessingState state, AsyncCallback callback) {
            throw new Exception("The method or operation is not implemented.");
        }

        public Eas.WebCrawler.Model.Actions.ProcessingAction EndAction(Eas.WebCrawler.Model.Core.WorkerContext context, Eas.WebCrawler.Model.Core.BaseProcessingState state, IAsyncResult result) {
            throw new Exception("The method or operation is not implemented.");
        }

    }
}
